package com.csu.express.service;

import java.util.List;

import com.csu.common.exception.WebException;
import com.csu.express.pojo.OrderPojo;
import com.csu.express.vo.AssessVo;
import com.csu.express.vo.OrderDriverVo;
import com.csu.express.vo.OrderRequestVo;
import com.csu.express.vo.OrderResponseVo;

/**
 * @项目名称：express
 * @类名称：OrderService
 * @类描述：
 * @创建人：Tangc
 * @创建时间：2017年10月23日 上午9:37:30
 * @company:
 */
public interface OrderService
{

    /**
     * @description
     * @author TangC
     * @date 2017年10月28日 上午11:04:32
     * @param serialNumber
     * @return
     */
    OrderResponseVo getOrderInfoBySn(String serialNumber) throws WebException;

    /**
     * @description
     * @author TangC
     * @date 2017年10月28日 下午6:12:47
     * @param customerId
     * @param queryStatus 
     * @param pageNo
     * @param pageSize
     * @return
     */
    List<OrderResponseVo> getOrderListByCustomerId(int customerId, int begin, int size, Integer queryStatus) throws WebException;

    /**
     * @description
     * @author TangC
     * @date 2017年10月28日 下午11:24:58
     * @param assessVo
     * @return
     */
    Double assessOrder(AssessVo assessVo);

    /**
     * @description
     * @author TangC
     * @date 2017年10月28日 下午11:25:29
     * @param orderRequest
     * @return
     */

    OrderPojo addOrder(OrderRequestVo orderRequest);

    /** @description
     * @author TangC
     * @date 2017年10月31日 下午8:23:08
     * @param serialNumber
     * @param customerId
     * @return
     */

    Integer cancelOrder(String serialNumber, Integer customerId);

    /**
     * @description
     * @author 阳凯
     * @date 2017年11月5日 下午9:18:11
     * @param driverId
     * @param begin
     * @param size
     * @param queryStatus
     * @return
     * @throws WebException
     */
    List<OrderDriverVo> getOrderListByDriverId(int driverId, int begin, int size, Integer queryStatus) throws WebException;
}
